package com.company;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
 * 对Student类内的数据进行处理，和存储
 */
public class StudentManagement {
    public static List<Student> stu = new ArrayList<>();
    static Scanner sc = new Scanner(System.in);
    /**通过学号的唯一性，查找集合里是否有该学生
     * @return true->说明有该学生，false->说明没有该学生
     */
    private boolean StudentFand(Integer integer){
        for (Student s: stu) {
            if(s.getNum().equals(integer)){
                return true;
            }
        }
        return false;
    }
    /**
     * 添加学生类
     * @param st:创建的学生类
     */
    public void addStudent(Student st){
        if(StudentFand(st.getNum()) == false){
            //Scanner sc = new Scanner(System.in);
            System.out.print("请输入录入学生的名字：");
            st.setName(sc.next());
            System.out.print("请输入录入学生所属的二级学院：");
            st.setYuan(sc.next());
            System.out.print("请输入录入学生所属的班级：");
            st.setBan(sc.next());
            System.out.print("请输入录入学生身份证号：");
            st.setID(sc.nextLong());
            System.out.print("请输入录入学生的家庭住址：");
            st.setHome(sc.next());
            //sc.close();
            stu.add(st);
            System.out.println("添加成功");
        }else{
            System.out.println("该学生以存在");
            return;
        }
    }
    /**
     * 打印添加的学生的信息
     */
    public void Print(){
        for (Student student : stu) {
            System.out.println(student);
        }
    }
    /**
     * 通过输入的学号查找集合当中的学生信息
     * @param i 传入的查询的学生的学号
     */
    public void Lookup(Integer i){
        for (Student student : stu) {
            if(student.getNum().equals(i)){
                System.out.println(student);
                return;
            }
        }
        System.out.println("抱歉，系统中没有录入该学生的信息");
    }
    /**
     * 通过输入的学号来改变学生的信息
     */
    public void Chenge(){
        //Scanner sc = new Scanner(System.in);
        System.out.print("请输入要更改的学生的学号：");
        if(sc.hasNextInt()){
            int i = sc.nextInt(); 
            for (Student student : stu) {
                if(student.getNum().equals(i)){
                    System.out.println(student);
                    System.out.print("请输入更改后学生的名字：");
                    student.setName(sc.next());
                    System.out.print("请输入更改后学生所属的二级院校：");
                    student.setYuan(sc.next());
                    System.out.print("请输入更改过后学生的班级：");
                    student.setBan(sc.next());
                    System.out.print("请输入更改过后学生的身份证号：");
                    student.setID(sc.nextLong());
                    System.out.print("请输入更改过后学生的家庭住址：");
                    student.setHome(sc.next());
                    System.out.println("更改完成");
                   // sc.close();
                    return ;
                }
            }
            System.out.println("抱歉，该学生未被录入系统中。");
            //sc.close();
            return ;
        }else{
            System.out.println("抱歉，请您输入正确的数据类型。");
            //sc.close();
        } 
    }
    /**
     * 删除学生的信息
     */
    public void removeStudent(){
        //Scanner sc = new Scanner(System.in);
        System.out.print("请输入要删除的学生的编号：");
        int a = sc.nextInt();
        if(StudentFand(a) == false){
            System.out.println("抱歉，系统中没有该学生的信息");
            sc.close();
            return ;
        }
        for (Student student : stu) {
            if(student.getNum().equals(a)){
                System.out.println(student);
                stu.remove(student);
                //sc.close();
                System.out.println("删除完成");
                return;
            }
        }
        //sc.close();
    }
    /**
     * 删除所有的学生的信息
     */
    public void removeAll(){
        //Scanner sc = new Scanner(System.in);
        System.out.print("系统将会删除所有学生的信息，请您慎重选择（按0退出去，按1系统将会清空）：");
        int a = sc.nextInt();
        if(a == 0){
            //sc.close();
            return ;
        }
        if(a == 1){
            for (Student student : stu) {
                System.out.println(student);
                stu.remove(student);
                System.out.println("已删除");
            }
            System.out.println("系统信息已被清除");
            //sc.close();
            return;
        }
        //sc.close();
    }
}
